"fn MY_abbreviate{{{
imap <C-TAB> <C-R>=MY_abbreviate()<CR><Right>
function! MY_abbreviate()
	let l:opts = Get_line_option( getline('.') )
	"php http{{{
	if 'http'==l:opts[0]
		for item in [
					\ {'key': 'text', 'val': 'header("Content-Type: text/plain; charset=GBK");'},
					\ {'key': 'download', 'val': 'header("Content-Type: application/force-download");'},
					\ {'key': 'filename', 'val': 'header("Content-Disposition: attachment; filename=A.txt");'},
					\]
			if item.key==l:opts[1]
				exec "normal S" . item.val
				return ''
			endif
		endfor
	endif
	"}}}
	"php iconv{{{
	if 'iconv'==l:opts[0]
		if len(l:opts)==3 && 'r'==l:opts[2]
			exec "normal S$".l:opts[1]." = iconv('GBK', 'UTF-8//IGNORE', $".l:opts[1].");"
		else
			exec "normal S$".l:opts[1]." = iconv('UTF-8', 'GBK//IGNORE', $".l:opts[1].");"
			"exec "normal S$".l:opts[1]." = iconv('UTF-8', 'GB18030//IGNORE', $".l:opts[1].");"
		endif
	endif
	"}}}

	return ''
endfunction
"}}}

	if len(l:opts)==3 && 'sql'==l:opts[0] && 'in'==l:opts[1]
		exec "normal S$in = array_fill(0, count($".l:opts[2]."), '?');\n$in = join($in, ',');"
	endif

